package com.niiwoo.activity.stage.service.inviterBuddy;

import com.niiwoo.activity.stage.dto.request.inviteBuddy.*;
import com.niiwoo.activity.stage.dto.response.inviteButty.InviteBestirAwardRespDTO;
import com.niiwoo.activity.stage.dto.response.inviteButty.InviteBestirInviteRespDTO;
import com.niiwoo.activity.stage.dto.response.inviteButty.InviteBestirMyDataRespDTO;
import com.niiwoo.activity.stage.dto.response.inviteButty.InviteIndexPageRespDTO;
import com.niiwoo.tripod.provider.dto.response.PageResponseDTO;

import java.util.List;

public interface InviteBuddyActivityDubboService {

    /**
     * 邀请活动首页信息
     * @param reqDTO
     * @param period
     * @return
     */
    public InviteIndexPageRespDTO inviteIndexPage(InviteIndexPageReqDTO reqDTO,Integer period);

    /**
     * 我的推荐邀请统计数据接口
     * @param reqDTO
     * @param period
     * @return
     */
    public InviteBestirMyDataRespDTO inviteBestirMyData(InviteBestirMyDataReqDTO reqDTO ,Integer period);

    /**
     * 用户奖励明细接口
     * @param reqDTO
     * @param period
     * @return
     */
    public PageResponseDTO<InviteBestirAwardRespDTO> inviteBestirAwardDetailList(InviteBestirAwardReqDTO reqDTO , Integer period);

    /**
     * 用户邀请明细接口
     * @param reqDTO
     * @param period
     * @return
     */
    public List<InviteBestirInviteRespDTO> inviteBestirInviteDetailList(InviteBestirInviteReqDTO reqDTO,Integer period);

    /**
     * 邀请活动首页信息(新)
     * @param reqDTO
     * @param period
     * @return
     */
    public InviteIndexPageRespDTO inviteIndexPageNew(InviteIndexPageReqDTO reqDTO,Integer period);

    /**
     * 我的推荐邀请统计数据接口(新)
     * @param reqDTO
     * @param period
     * @return
     */
    public InviteBestirMyDataRespDTO inviteBestirMyDataNew(InviteBestirMyDataReqDTO reqDTO ,Integer period);

    /**
     * 用户奖励明细接口(新)
     * @param reqDTO
     * @param period
     * @return
     */
    public PageResponseDTO<InviteBestirAwardRespDTO> inviteBestirAwardDetailListNew(InviteBestirAwardReqDTO reqDTO , Integer period);

    /**
     * 用户邀请明细接口(新)
     * @param reqDTO
     * @param period
     * @return
     */
    public List<InviteBestirInviteRespDTO> inviteBestirInviteDetailListNew(InviteBestirInviteReqDTO reqDTO,Integer period);

    /*==============================================================================*/

    /**
     * 2017邀请好友激励活动投资事件处理
     * @param dto
     * @return
     */
    public void inviteBestirActivityInvest(UserInvestEventDTO dto);

    /**
     * 2017邀请好友活动借款事件处理
     * @param dto
     * @return
     */
    public void inviteBestirActivityProjectPublish(ProjectPublishEventDTO dto);

    /**
     * 2017邀请好友活动满标事件处理(九月)
     * @param dto
     * @return
     */
    public void inviteBestirActivitySuccessProject(ProjectStatusChangeEventDTO dto);


}
